package com.tuanzi.loan.log.repository;

import com.tuanzi.loan.log.vo.request.ErrorLogSearchRequest;
import com.tuanzi.loan.log.vo.response.ErrorLogDetailResponse;
import com.tuanzi.loan.log.vo.response.ErrorLogSearchResponse;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @author JinRuiyang 2017/11/21
 */
public interface ErrorLogRepository {

    /**
     * 根据id获取错误日志
     * @param id id
     * @return 错误日志
     */
    ErrorLogDetailResponse findById(Long id);

    /**
     * 根据异常日志查询请求获取日志列表
     * @param searchRequest 日志查询请求
     * @param pageable 分页
     * @return 异常日志列表
     */
    Page<ErrorLogSearchResponse> list(ErrorLogSearchRequest searchRequest, Pageable pageable) ;

    /**
     * 获取异常日志表中的项目名称列表
     * @return 项目名称列表
     */
    List<String> getProjectName();

    /**
     * 批量更新异常日志的状态码
     * @param exceptions 异常名称集合
     * @param status 需要更改为的状态码
     * @return 修改行数
     */
    int[] setStatus(List<ErrorLogSearchResponse> exceptions, Integer status);

    /**
     * 更新异常日志的状态码
     *
     * @param exception  异常名称
     * @param status     需要更改为的状态码
     * @return 修改行数
     */
    int setStatus(ErrorLogSearchResponse exception, Integer status);
}
